Passed
Push — develop ( e93b74...bfb867 )
by Endre
07:48
created

Container   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 64
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 58
dl 0
loc 64
ccs 21
cts 21
cp 1
rs 10
c 0
b 0
f 0
wmc 1

1 Function

Rating   Name   Duplication   Size   Complexity  
A setupDefaults 0 20 1
1
import React from 'react';
2
import LanguageContainer from '../Language/Container';
3
import ListenerAdapter from '../Observer/ListenerAdapter';
4
import Observer, {IObserverAdapter} from '../Observer/Observer';
5
import RouterContainer from '../Router/Container';
6
import Action from './Action';
7
import {IAdapter, IModulePageData} from './Application';
8
import ModuleLoader from './ModuleLoader';
9
import ApplicationPresenter from './View/Application/Presenter';
10
import PagePresenter from './View/Page/Presenter';
11
import SideMenuPresenter from './View/SideMenu/Presenter';
12
import TopBarPresenter from './View/TopBar/Presenter';
13
14
class Container {
15
  language: typeof LanguageContainer;
16
  router: typeof RouterContainer;
17
  applicationPresenter: ApplicationPresenter;
18
  topAppBarPresenter: TopBarPresenter;
19
  applicationAction: Action;
20
  menuOpenStateAdapter: IObserverAdapter<boolean>;
21
  menuOpenState: Observer<boolean>;
22
  sideMenuPresenter: SideMenuPresenter;
23
  moduleStateAdapter: ListenerAdapter<typeof React.Component | null>;
24
  moduleState: Observer<typeof React.Component | null>;
25
  moduleLoader: ModuleLoader;
26
  pagePresenter: PagePresenter;
27
  applicationActionAdapter: IAdapter;
28
29
  constructor() {
30 1
    this.language = LanguageContainer;
31 1
    this.router = RouterContainer;
32
33 1
    this.menuOpenStateAdapter = {onChange: ((oldValue, newValue) => {})};
34 1
    this.menuOpenState = new Observer<boolean>(false, this.menuOpenStateAdapter);
35
36 1
    this.moduleStateAdapter = new ListenerAdapter<typeof React.Component | null>();
37 1
    this.moduleState = new Observer<typeof React.Component | null>(null, this.moduleStateAdapter);
38 1
    this.moduleLoader = new ModuleLoader('../', this.moduleState);
39
40 1
    this.applicationAction =
41
      new Action(this.menuOpenState, this.router.router, this.router.registry, this.moduleLoader);
42 1
    this.applicationActionAdapter = this.applicationAction.adapter;
43
44 1
    this.topAppBarPresenter = new TopBarPresenter(this.language.observer);
45 1
    this.sideMenuPresenter =
46
      new SideMenuPresenter(this.menuOpenState, this.language.observer, this.router.observer, this.router.registry);
47 1
    this.pagePresenter = new PagePresenter(this.moduleState);
48 1
    this.applicationPresenter = new ApplicationPresenter(
49
      this.language.observer,
50
      this.topAppBarPresenter,
51
      this.sideMenuPresenter,
52
      this.pagePresenter
53
    );
54
55 1
    this.setupDefaults();
56
  }
57
58
  protected setupDefaults(): void {
59
60 1
    this.router.adapter.addListener(this.applicationActionAdapter.onPageChanged);
61 1
    this.language.changeLanguageSetup.interact({languageCode: 'de-de'}, {}).then();
62 1
    const homePage: IModulePageData = {
63
      depth: 0,
64
      name: 'home',
65
      url: './',
66
      module: './HelloWorld'
67
    };
68 1
    const settingsPage: IModulePageData = {
69
      depth: 1,
70
      name: 'settings',
71
      url: './settings/',
72
      module: './Settings/Settings'
73
    };
74 1
    this.router.registry.registerPage(homePage);
75 1
    this.router.registry.registerPage(settingsPage);
76 1
    this.router.observer.value = homePage;
77
  }
78
}
79
80
export default new Container();